TKgate : un simulateur de circuits digitaux

« facile » d'accès









1) Tkgate c'est quoi ?

On parle peu de Tkgate, un utilitaire GNU comprenant un éditeur de schéma logique et simulateur. Le format des fichiers est du type Verilog . On l'a en main assez vite, pour les choses simples ...Pour faire un système à processeur complet, là il faut bosser !

Ce logiciel est orienté processeur ! Oui, vous pouvez concevoir des circuits simples du genre « horloge maison », décodeurs divers. Vous pouvez aussi simuler des processeurs ! Il est possible de se constituer une collection de circuits-modules que l'on peut appeler et câbler à sa guise. Les possibilités sont immenses.

En effet, il contient un compilateur pour le codage des instructions, la mise au point de la prom de microprogramme, l'édition de la mémoire de travail du système, des points d'arrêts, ....

Un bon exemple de ce qu'il est capable de faire est le circuit « menagery » inclus dans le paquetage. C'est un système avec CPU+ROM+RAM +interface TTY s'il vous plaît (dialogue avec une console avec un port série virtuel !) .

    J'avais essayé Tkgate il y a quelques années. Il a bien progressé depuis !





    2) Ou trouver tkgate :



Le site officiel de Tkgate se trouve à http://www.tkgate.org .On peut télé-charger un paquetage des sources au format tgz ( ftp://gadoid.ices.cmu.edu/pub/tkgate/tkgate-1.8.6.tgz ) . Là, il faut compiler comme d'habitude sous linux (./configure ; make ; su ; make install ) .

Si vous voulez une solution plus simple, une visite à rpmseek.com ou à RPM Search permettra de trouver « tkgate-1.6i-1.i686.rpm » ou son équivalent. Suivant votre les cas, des dépendances plus ou moins longues vous obligeront à aller à la pêche. YUM et autre APPGET ne marchent pas forcément bien pour ce genre de programme « ésotériques ». Il vous faut de toute façon un « tcl tk » assez récent.

Lisez quand même un peu la doc avant de vous lancer ( http://www.tkgate.org/1.8/index.html ) .





    3) Exemple de circuit :



Voici la synthèse d'un compteur 4 bits synchrone câblé avec des portes logiques :




Les équations logiques d0, d1, d2 et d3 sont déduites du tableau de vérité. J'ai réduit les équations de d2 et de d3 grace au tableau de Karnauth.

Maintenant, la même chose avec une ROM !




Il faut faire un « reset » des bascules D avec le switch du haut, car ici, nous avons du Verilog sous le capot. Il ne met pas Zéros pour les états indéterminés . On peut choisir l'horloge ou le mode pas à pas avec le switch du bas. Le switch du milieu sert à avancer d'un coup d'horloge. Pour la version avec ROM, ne pas oublier de charger sont contenu (bien lire la doc Tkgate ).

Les sources sont : compteur_PC.v pour le 1er circuit, et compteur_PC_rom.v et compteur_4bits.mem pour

l'image mémoire qui va avec. En modifiant ce fichier, on peut faire n'importe quels cycles d'automate à 16 états distincts! Lorsqu'on réduit les équations logiques, il arrive que des cases non prise en compte soient accidentellement activées (parasite). Dans un tel cas, l'automate plante ! Avec une PROM, il suffit de remplir toutes les cases. On peut l'obliger à aller à Zéro par exemple.

On voit comment mettre au point un système. On essaye d'abord avec une PROM virtuelle. Puis, lorsque le résultat est satisfaisant, on peut réduire les équations, puis câbler le tout encore virtuellement. Lorsqu'on prend sont fer à souder, tout devrait marcher du 1er coup. Je dis devrait, car la simulation ne montre pas les parasitages d'un mauvais câblage (capacités et inductances parasites, perturbations dues à une alim mal filtrée, boucle de masse ou ligne de masse trop fines ...).

Pour fabriquer sont propre CPU, on peut procéder de même, ... mais à une plus grande échelle de complexité bien sûr. Un CPU est en fait un gros compteur, un très très très gros ...compteur !



4) Actuellement, je mets au point des circuits CPU. Je les mettrais en ligne quand ils seront satisfaisants ! (à suivre)





Retour vers la table des matières